perm filename TESTJ[E,ALS]2 blob
sn#229810 filedate 1976-08-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 NOT A NEW PAR
C00007 00003 A table for testing TJ commands
C00013 00004 VERSION WITH STICKEY SWITCHES
C00039 ENDMK
C⊗;
NOT A NEW PAR
NEW PAR STARTS HERE
This started with a TAB.
The Jget command should accept some typed-in margins and it should,
when so ordered, complete the set of margins by inspecting a specified
range of the text that is being editer. Margin values consist of The
paragraph indentation (refered to as PMAR). The normal left indentation
(LMAR), the last right-most column to be occupied by the text (RMAR), and
the number of blank lines that are to precede the individual paragraphs
(BNUM). It is anticipated that one might very well have a variety of
different paragraphs on the page, all with different indentations and with
some separated by blank lines and some not so separated. One should still
be able to use JGET without to much trouble This page has been typed to
illustrate the problem and to provide some text to test out various ideas.
At the present time I am of the opinion that the following conventions
will handle the situation.
1) The commands JGET and TJGET may be typed with or without a leading
argument and with or without trailing arguments and with or without there
being anything in the ATTACH buffer. 2) The leading argument specifies
the number of lines of text to be used. If this number is missing or if
it exceeds the number of lines on the page (or in the ATTACH buffer) then
the inspection extends to the end of the page (or the end of the ATTACH
buffer). The inspection begins at the arrow location (or at the start of
the ATTACH buffer). This will be called the first line.
3) A zero leading argument specifies that no text inspection is to be
made. In this case the default margin specifications are to be used
unless they are specified in the trailing string of arguments.
4) The trailing arguments consist of a series of decimal numbers
separated by commas. Missing arguments are indicated by commas that are
not preceded by numerical values.
5) If an initial argument is used, then all margins are to be reset to
the values specified by the trailing arguments or, if not so specified,
they are to be infered by an inspection of the text.
--- 00 01 02 03 04 05 06 07
000 NUL ↓ α β ∧ ¬ ε π X 010 λ TAB LF VT FF CR ∞ ∂ 002 ⊂ ⊃ ∩ ∪ ∀ ∃ ⊗ ↔
003 _ → ~ ≠ ≤ ≥ ≡ ∨
αXJUST +3,4,66<cr> Justify the current page or the ATTACH buffer using
temporary margins as specified (in this example to 7, 4 and to 66
respectively).
αβXJUST ,4,66<cr> Justify the current page or the ATTACH buffer using
new sticky margins as specified. These new values now become the default
values. The paragraph indentation will be left at the previously
specified value.
CONDITIONS ACTION P(old) L(old) B(old) New par. @ PMAR after BNUM
Other lines at LMAR
N N 0 for all old lines Overflow only at LMAR N N >0 after blank lines
only Other lines at LMAR >1 0 0 if INDENT>1 or after blank " " " " N ≠N,>0
>0 if INDENT=N or after blank " " " " ZZZZZZZZ
A table for testing TJ commands
00 01 02 03 04 05 06 07
000 NUL ↓ α β ∧ ¬ ε π
010 λ TAB LF VT FF CR ∞ ∂
020 ⊂ ⊃ ∩ ∪ ∀ ∃ ⊗ ↔
030 _ → ~ ≠ ≤ ≥ ≡ ∨
040 SP ! " # $ % & '
050 ( ) * + , - . /
060 0 1 2 3 4 5 6 7
070 8 9 : ; < = > ?
Still another version
00 01 02 03 04 05 06 07
000 NUL ↓ α β ∧ ¬ ε π
010 λ TAB LF VT FF CR ∞ ∂
020 ⊂ ⊃ ∩ ∪ ∀ ∃ ⊗ ↔
030 _ → ~ ≠ ≤ ≥ ≡ ∨
040 SP ! " # $ % & '
050 ( ) * + , - . /
060 0 1 2 3 4 5 6 7
070 8 9 : ; < = > ?
A very simple table
11 22 33 44
55 66 77 88
123456789 123456789 123456789 123456789 123456789 123456789 123456789
αβXTJG This command is used if one wants to find
the margin and columns spacings from a table
that already exists either in a desired
format or a formatted table that is to be
reformatted in some way.
For single-page searches the commands are:
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
αβFSmith<cr> Find just plain Smith or smith but not this
string in $smith, in blacksmith or in
Smithsonian. Note that % and _ are accepted
as alphamerics.
αFSmith<cr> Find smith as an isolated word or as part of
a longer string (in blacksmith for example).
The string will be found even where not
delimited by non-alphamerics.
Round-Robin Scores
vs 1 2 3 4 5 6
1 x
2 x
3 x 15-2
15-7
4 x
5 x
6 x
Samuel, Art (Dr. Arthur L.) 202 PAE[S,ALS] 2 1000
501 Portola Road, Portola Valley, 94025 (9) 851-1501 βDec 5
Scheinman, Vic (Mr. Victor D.) 205 SRA[H,VDS] 2 200
3689 South Court, Palo Alto, 94306,(9) 493-3038 βDec 28
Scherlis, Bill (Mr. William L.) 251 SRA[PV,WLS] 2
2976 Cowper St., Palo Alto, (9) 494-1932 βAug 28
Schreiber, Joachim (Mr. Joachim F.) 255C S[PV,JFS] 2
P.O. Box 9216, Stanford, 94305 (9) 328-3178
Shimano, Bruce (Mr. Bruce E.) 230C SRA[H,BES] 2 450
1950 Cooley Avenue, #4109, Palo Alto, 94303, (9) 328-0319 βApril 11
Smith, Leland (Prof. Leland C.) 267 P[M*/VB,LCS] 2 900
3732 Laguna Avenue, Palo Alto, (9) 493-9386 βAug 6
Steinberg, Lou (Mr. Louis I.) SRA[PSI,LIS] 2 250
1634 Milvia, No. 6, Berkeley 94709, (57) 845-4833 βJuly 16
Sutton, Rich (Mr. Richard S.) S[H,RSS] 1
25Y Manzanita Park, Stanford, 60521, (9) 321-4051 βSept 21
Samuel, Art (Dr. Arthur L.) 202 PAE[S,ALS] 2 1000
Scheinman, Vic (Mr. Victor D.) 205 SRA[H,VDS] 2 200
Scherlis, Bill (Mr. William L.) 251 SRA[PV,WLS] 2
Schreiber, Joachim (Mr. Joachim F.) 255C S[PV,JFS] 2
Shimano, Bruce (Mr. Bruce E.) 230C SRA[H,BES] 2 450
Smith, Leland (Prof. Leland C.) 267 P[M*/VB,LCS] 2 900
Steinberg, Lou (Mr. Louis I.) SRA[PSI,LIS] 2 250
Sutton, Rich (Mr. Richard S.) S[H,RSS] 1
VERSION WITH STICKEY SWITCHES
A new ETV is up with major changes to the justification commands, and
with six new instructions added. All users of these commands are urged
to read E.ALS[UP,DOC] (type <META><CONTROL>? while using ETV). Users
not already addicted to the justify commands in ETV might now find these
commands very usefull.
Changes to the existing line manipulation commands.
1) There is now no effective limit to the length of lines that may be handled
by these commands. (The actual limit is 131070 characters).
2) Punctuation marks . ! and ? followed by a space, even with any number of
closure symbols (such as ", ), ], etc) interposed, are treated as
sentence endings and are followed by 2 spaces when text is justified.
3) The fast indent commands ← and → are now primed by the XINDENT command
and use the absolute indent value associated with the last use of this
command. The initial default value is 4.
4) Negative prefix arguments are now permitted, for example,
αβ-αβ5αβXJU<CR> now justifies the last 5 lines before, but not including,
the arrow line.
5) A zero prefix argument (with commands using margins) causes the existing
switch setting (see below) and margins to be reported. Switch settings
and margin values may be changed, if desired, with a zero-prefixed
command. The new values will be stored before making the report, but no
overt action will be taken, such, for example, as to replace the input
conditions from the output for a R switch setting, or to get new input
conditions from the text for a G switch setting.
6) Left margins are now specified in terms of indent values not as column
positions, that is, one types a "0" (not a "1" as formerly) if the line is
to start with no indent. This usage is now consistant for all commands.
(The right margin is still in terms of column position and so specifies
the number of chararacters on a line when the left indent is zero.)
7) The number of blank lines (B) to be used between paragraphs may now be
specified by typing a fourth suffixing number (it may be 0). The
default situation calls for there to be the same number of
blank lines between individual paragraphs after justification as there
were in the original text. This default situation may be reset by
typing -1 as the fourth number and it is reset automatically when other
margin values are changed unless the desired B value is retyped.
8) All margin specifications are now sticky, that is, if no margins are specified
then the values previously specified are used by default. The original
default values are: 4,0,72,-1. This means that, the crown lines (first lines
of new paragraphs) will be indented by 4, the main body of the text will
have 0 indent, the right hand margin will end at colomn 74 and the
same number of blank lines will be used between paragraphs as in the
original text. Note, that the B value (see 7 above) is only provisionally
sticky.
9) Indents can no longer be specified relatively. This feature was seldom
used, it could be interpreted ambigously, and it is unnecessary.
10) All left margin indents now use TABs whenever possible.
11) New paragraphs, in the text that is being justified, can now be detected
in a variety of different ways. However because of long usage, a line of
text that is preceded by a blank line is still always assumed to start a
new paragraph.
The default or Normal condition (Set by the N switch, see below) is for
a new paragraph to be signalled either by the presence of a preceding
blank line or by an indent that is greater than 1. Users who have used
initial TABS as paragraph indicators may continue their usual practice.
However, it is now possible to handle text that is not in the, so called,
normal form.
12) SWITCHES
XJUST and XJFILL now accept certain switches which affect the
way these commands react to left margin indents in the text that is
being justified. These switches are sticky, that is, once a switch is
set, the conditions specified by the switch continue to hold for
subsequent uses of the XJUST and XJFILL commands when no new switch
is specified.
Switches are typed as a single letter following the command name. A
switch is separated from the command either by a slash "/" or by a
space and is separated from any margin values that may follow by
another space).
The initial default conditions correspond to those specified by the "N"
switch as described below, that is, a preceding blank line or any indent
of more than 1 space (a TAB counts as 8 spaces) signals the start of a
new paragraph.
Switch Mneumonic Conditions in old text identifying a new paragraph
(Besides preceding blank line)
N Normal Any indent >1
G Get Exact indent as gotten by examining specified text.
R Rejustify Exact indent (P value) previously specified.
E Exact Exact input paragraph indent previously used.
For completeness, the range of usage for these different switches and
their individual characteristics will be described below.
N This is the default switch and the switch that will most often be used,
certainly by the casual uses.
The body of the text is assumed to be without any indent and all lines
that are either preceded by a blank line or that are indented by more than
one space (or a Tab) are assumed to start a new paragraph.
G The G switch causes ETV to determine the initial situation by examining
the text itself.
This switch may be used if one wants to justify some text that is
neither in the, so called, Normal format (when the N switch is used)
nor in the format that has most recently been established by an earlier
XJUST or XJFILL command (when the R switch is safer and faster).
Care must be taken in using the G switch as the conditions to be used
for making new-paragraph decisions are determined and then put to use
without the user being able to verify the conditions before they are
applied. A slower but safe procedure is to use the XGET command to
get ETV to the determine and display te margin conditions that it finds.
One can verify these conditions by inspection, and then use the R switch
with the justifying command to effect the desired justification.
With the G switch, ETV examines the designated text, firstly to see if
there are any blank lines. If there are ETV assumes that the first line
after this blank line is the start of a new paragraph. If there are no
blank lines in the designated text, ETV then gets the indentations for the
first two lines and if these are not the same it assumes that the first
one starts a paragraph (note that this means tha the text to be justified
can not start with the last line of a paragraph). If the first two lines
examined have the same indent these are assumed to be normal text and the
first line that has a different indent is assumed to start a paragraph.
R The R switch causes the former output conditions to be used as the new
input test conditions.
This is the switch to use if one makes some editing changes to text that
one has just put into some non-standard form. It may also be used
on text that is in any arbitrary form by first letting ETV determine
the existing margin conditions using the new XJGET command.
E The E switch causes the existing input conditions to be retained.
This is the switch to use if one has previously established conditions
for justifying some non-normal text and now wants to justify another
portion of text that conforms to the earlier established input
conditions.
13) XJGET
A new command XJGET has been added that determines the margin values
of a designated portion of text in a manner similar to that discribed
for the G switch above but it causes these data to be store as the
margin values that will be used for subsequent XJUST or XJFILL commands.
The right margin value is determined from the longest line in the sample.
The blank line control is reset to the initial default condition.
This command allows one to use a portion of the text that is already in the
desired format as a sample of what is wanted, while the G switch gives
ETV the task of determing the existing margins in the text that is to be
justified.
14) XJSEPARATE This is a new command that separates a designated portion of
text into individual sentences.
The sentences all begin at the specified normal left margin and any
blank lines that were in the original text are retained. The sentences
can then be easily rearranged for subsequent reformatting by the XJUST
and XJFILL commands). Note that crown line indents are lost.
New commands for use with tabular material
Four new commands have been added that permit one to handle tabular material
in a manner analogous to way in which normal text can be treated.
Two types of commands are provided to take care of the two classes of input data
that are most apt to be encountered, these being:
A) Tabular material that is in proper columnar alignment but that may have
missing entries.
The XTABLE command is intended for use with such material.
B) Tabular material that is not be in proper columnar alignment, but where the
entries are separated by at least 2 spaces or by TABs. There may also be
normal text associated with eash tabular line which is to be justified.
Of course, in this case there can be no missing entries.
The XTJFILL and XTJUST commands are intended for use under these conditions.
These new Tabular commands require the specification of additional values in
addition to the P,L,R.B values specified with the XJUST and XJFILL commands.
Of course, just as for these older commands, default values may be used and
only those values that are to be changed nedd to be specified. Switches and
margins are specified as usual (with some restrictions which will be described
later).
When new values are to be typed, these must start with a semicolon ";" and
they are to be separated by commas. Values not otherwise marked are taken to
be field lengths, that is the string ;5,8,9<CR> is taken to mean that there
are to be three columns the first one starting with an indent as specified by
the P value and with a field length of 5 character positions, this is to be
followed by a second field of 8 character positions, then one with a field
length of 9. These values supercede the field lengths that had previously
been specified for the first three fields and if still additional fields had
been specified these are to be retained and shifted to the right or left
as may be required because of the changed to the first three fields.
When several fields are to have the same length these fields may be specified
by the use of the @ sign, thus 9@5,7 means that there are to be 9 fields of
length 5 followed by a field of length 9. Fields that are to be left the
same may be skipped by the use of commas without numbers, thus ,,7 means
leave the first two columns unchanged and make the next one with a length of 7.
Similarly 4@0,3@5 means leave the first 4 columns unchanged and make the
next 3 columns with lengths of 5. Note that zero, in this case, does not mean
a column of zero length but means no change.
Fields must have widths of 3 or more to permit a single character and to
allow for there to be two spaces between the characters in different columns.
Should any particular entry be too long for the width specified, the next
entry is automatically moved to the right so as to preserve the desired
separation between columns. Such excesses may propagate.
A fourth command XTJGET has been provided to perform the same function for
tabular material that is performed for ordinary text by the XGET command.
It should be noted that this command must deternine the positions of each
column as well as the left margins and so it must be given when the designeted
text is restricted to start with a taabular line in which there are no missing
entries.
The complete specificationns for these new tabular commands will be listed below.
XTABLE
This command must have been previously primed by means of the XTGET command
so as to have information regarding the existing state of the input material.
Information regarding the desired new format may then be typed with the
command or it may be obtained from the text if there is available a sample
with this desired format by a second XTGET command. Note that the old
format must be the first one established.
This command will accept a prefix argument defining the number of lines
to be processed and a series of suffexed arguments similar in every respect to
the syntax used with XFILL and XJUST. One may, in addition type additional
as to the desired tabular fields by typing a semicolon ";" followed by a series
of decimal numbers which define the field lengths to be used. If several fields
are to be all the same length the syntax, 5@7 for example, may be used meaning
in this case that there are to be 5 fields of 7 characters positions each.
Alternately it is possible to define a field in terms of the last colmnar
position that it is to occupy by prefacing the number with an exclamation mark
"!". Note that it is not possible to specify the starting column as this is
set by the cumulative lengths of the preceding fields.
For example, the command αβ7αβXTAble 4;10,6@5,!60<CR> would specify that there
be 8 fields with the first one occupying 10 columns starting at an indent of 4
then there are to be 6 fields each occuping 7 columns and a final field ending
at column 60. The starting indent for this last field is obtainable by adding
up the columns already accounted for (44) and so the last field is to
be 16 columns wide. Note that it is only necessary to type a single number
before the semicolon as this commands starts all lines with the new paragraph
indent, the normal left margin indent is not used and the program automatically
determines the right margin value from the accumulated column count.
This command requires information as to the existing format of the
data to be reformatted and information as to the desired new format. The old
format can most easily be obtained by usee of the XTJGET command. The new format
imformation can then be typed in with the XTABLE command or it my also be
obtained from an existing table (or portion of a table) that is already in
the desired format by using XTJGET a second time. Note especially that the old
format must be obtained before the new format is obtained even though it might
be convenient in some instances to reverse the order.
A) The data may be separated into fields separated by 2 or more spaces (or a YAB)
between fields, but the fields may not be in alignment. The table must of necessity
not contain any missing fields.
B) The data is in proper alignment, in which case there may be missing entries.
2) XTJUST This command re-aligns tabular data and justifies associated text,
subject to the condition that there be no empty entries in the original table.
The different entries need not be aligned initially but at least 2 spaces, or
a TAB, must separate entries.
The desired columnar conditions may be defined by reference to data that
is properly spaced by using the XTGET command or the column sizes may be
typed as numbers following a semicolon ";" which after any normal margin
specifying numbers that may have followed the command.